#ifndef IRENDERABLECOLLECTION_H
#define IRENDERABLECOLLECTION_H


#include "Framework/Prerequisites.h"




namespace tyro
{
	namespace Scene
	{
		struct RenderablePass 
		{
			Graphics::Pass* pass;
			Graphics::IRenderable* renderable;

			RenderablePass(Graphics::Pass* p, Graphics::IRenderable* rend) : pass(p) , renderable(rend) {}
		};

		class IRenderableCollection
		{
		public:

			IRenderableCollection();

			typedef vector<RenderablePass>::type			RenderablePassList; 
			typedef vector<Graphics::IRenderable*>::type	RenderableList;

			virtual void AddRenderable(Graphics::Pass* pass, Graphics::IRenderable* rend);
			const IRenderableCollection::RenderablePassList& GetRenderables( void ) const;

		protected:
		private:

			RenderablePassList renderables;


		};
	}
}
#endif